// 题目描述: 根据每日气温列表，请重新生成一个列表，对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高，请在该位置用 0 来代替。
//
// 例如，给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73]，你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。
//
// 提示：气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度，都是在 [30, 100] 范围内的整数。

/**
 * @description 每日温度
 * @param {number[]} T
 * @returns {number[]}
 */
const dailytemperatures = function(T) {
  const len = T.length // 缓存数组的长度
  const stack = [] // 初始化一个栈
  const res = (new Array(len)).fill(0) // 初始化结果数组，注意数组定长占位为0
  // 遍历入栈 栈内保存下标
 for(let i= 0; i< length; i++) {
  // 出栈条件
  // 栈不为空 并且当前温度大于栈顶
  while(stack.length && T[i] > T[stack[stack.length - 1]]) {
   // 将栈顶温度值对应的索引出栈
   const top = stack.pop()
   // 当前的下标 减去 栈顶下标就天数
   res[too] = i -top
  }
  stack.push(i)
 }
 return res
 }
const temperatures = [73, 74, 75, 71, 69, 72, 76, 73]
dailytemperatures(temperatures)
